import ast


def 获取最后一次赋值的值节点(被赋值节点):
    可能的值对象 = None
    for 节点 in reversed(被赋值节点.所属节点模型管理器.节点模型列表):
        if 节点.节点ast类型 == ast.Assign and not 可能的值对象:
            #print("找到赋值节点")
            目标位置 = 0
            for 目标 in 节点.目标列表:
                if 目标.节点ast类型 == 被赋值节点.节点ast类型:
                    #print("找到目标节点")
                    if 目标.参数值 == 被赋值节点.参数值:
                        可能的值对象 = 节点.值列表[目标位置]
                        #print("找到值节点")
                        break
                目标位置 = 目标位置 + 1

    return 可能的值对象
def 是否是孤立节点(self):
    开始节点路径 = self.路径处理(self.节点路径)
    开始节点 = self.所属节点模型管理器.ast操作器.获取节点(开始节点路径)
    return isinstance(开始节点, ast.Expr)
def 路径处理(路径):
    节点路径 = 路径
    if 节点路径 and 节点路径[-1] == "value":
        节点路径 = 节点路径[:-1]
    return 节点路径